using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("PolarityShift")]
	public class PolarityShift : SuperSpell
	{
		[Attribute38("PolarityShift.MinionData")]
		public class MinionData : MonoClass
		{
			public GameObject gameObject => method_3<GameObject>("gameObject");

			public Vector3 orgLocPos => method_2<Vector3>("orgLocPos");

			public Quaternion orgLocRot => method_2<Quaternion>("orgLocRot");

			public Vector3 rotationDrift => method_2<Vector3>("rotationDrift");

			public MinionData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public MinionData(IntPtr address)
				: this(address, "MinionData")
			{
			}
		}

		public float m_RotationDriftAmount => method_2<float>("m_RotationDriftAmount");

		public float m_ParticleHeightOffset => method_2<float>("m_ParticleHeightOffset");

		public ParticleEffects m_ParticleEffects => method_3<ParticleEffects>("m_ParticleEffects");

		public float m_CleanupTime => method_2<float>("m_CleanupTime");

		public float m_SpellFinishTime => method_2<float>("m_SpellFinishTime");

		public float m_HeightCurveLength => method_2<float>("m_HeightCurveLength");

		public float m_AnimTime => method_2<float>("m_AnimTime");

		public PolarityShift(IntPtr address, string className)
			: base(address, className)
		{
		}

		public PolarityShift(IntPtr address)
			: this(address, "PolarityShift")
		{
		}

		public new void Awake()
		{
			method_8("Awake");
		}

		public new void OnAction(SpellStateType prevStateType)
		{
			method_8("OnAction", prevStateType);
		}

		public void ShakeCamera()
		{
			method_8("ShakeCamera");
		}
	}
}
